Peer-to-peer computing is a distributed application architecture involving two or more computing nodes in which each computing node has the same capabilities to facilitate a file transfer and any computing node can initiate a communication session with any other computing node. Peer-to-peer computing is often used to facilitate file transfers in which a computer file is transmitted through a communication channel from one node to another node by a negotiated file transfer protocol. A checkpoint restart capability in a file transfer application can help in recovering file transfer failures. Using a checkpoint restart capability, if a transfer is interrupted, it can be resumed from a checkpoint rather than starting over from the beginning of the file. An encryption at rest capability allows a stream of data being transferred during a file transfer operation to be encrypted while stored on a persistent store. If encryption at rest capability is enabled and a file transfer failure occurs, however, the transfer is not resumed from a checkpoint as the encryption object state cannot be restored after a checkpoint restart.